/*
 * Copyright (C) 2006-2012 TongYan Corporation
 * All rights reserved.
 *
 * @brief info:
 *
 * @author: 王哲成 - wangzhecheng@yeah.net
 * @date: 2021.05.19
 * @last modified: 2021-05-19 15:27
 *
 */

#ifndef __ISG_BACK_ANALYSIS_METHOD_HEADER__
#define __ISG_BACK_ANALYSIS_METHOD_HEADER__

#include "ISGObjectFunction.hpp"
#include "Param.hpp"

class ISGBackAnalysisMethod {
public:
  ISGBackAnalysisMethod() = delete;
  ISGBackAnalysisMethod(const ISGObjectFunction *const ptr)
      : m_ptrTarFunc{ptr} {}
  ~ISGBackAnalysisMethod() = default;

  virtual Candidate getOptimalSolution(const ParamSet &param_set) = 0;

protected:
  const ISGObjectFunction *const m_ptrTarFunc;
};

#endif
